﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using MC.RideEvent.Mvc.Models.CustomValidations;

namespace MC.RideEvent.Mvc.Models.ViewModel
{
    public class VehiculeViewModel
    {
        public int Id { get; set; }
        public int MemberId { get; set; }

        [Required(ErrorMessage = "*")]
        [Display(Name = "Numéro immatriculation")]
        public string Matricule { get; set; }

        [Required(ErrorMessage = "*")]
        [Display(Name = "Nombre places disponibles maximum")]
        [Range(1, 5, ErrorMessage = "Can only be between 1 and 5")]
        public int NumberPlaces { get; set; }

        [Display(Name = "Modèle du vehicule")]
        [Required(ErrorMessage = "*")]
        public int VehiculeModelId { get; set; }

        /// <summary>
        /// Cette propriete sert a acceder au donnée d'un vehicule (model et marque). 
        /// Elle permet aussi aux formulaires de creation ou modification
        /// d'utiliser les DDL kendo.
        /// </summary>
        [ScaffoldColumn(false)]
        [UIHint("DropDownListModelKendo")]
        public VehiculeModelViewModel VehiculeModel { get; set; }

        /// <summary>
        /// Cette propriete est utilisé pour alimenter la partie Text 
        /// de la DDLVehiculeMemberKendo.
        /// </summary>
        public string VehiculeToString
        {
            get
            {
                var vehiculeStr = string.Format("{0} - {1} {2}", Matricule, VehiculeModel.VehiculeBrand.Title, VehiculeModel.Title);
                return vehiculeStr;
            }
        }

        /// <summary>
        /// Cette propriete est utilisé pour alimenter la donnée vehicule.
        /// Voir : la liste des trajet en tant que...
        /// </summary>
        public string BrandAndModelToString
        {
            get
            {
                var vehiculeStr = string.Format("{0} {1}", VehiculeModel.VehiculeBrand.Title, VehiculeModel.Title);
                return vehiculeStr;
            }
        }
    }
}